namespace FluentDataContract
{
    using System.Collections.Generic;

    public interface IPropertyBuilder<TObject> : IBuilder<TObject, IPropertyBuilder<TObject>>
    {
        List<IPropertyContract> Contracts { get; }

        IPropertyBuilder<TObject> IsReference();
        IPropertyBuilder<TObject> ReferenceLoopHanding(ReferenceLoopHandling referenceLoopHandling);
        IPropertyBuilder<TObject> Order(int order);

        IPropertyBuilder<TObject> Item();
    }
}